﻿using System;
using System.Collections;
using AUIP.Scripts.City.GameLogic;
using GameCreator.Core;
using GameCreator.Core.Hooks;
using Gp.Core;
using Gp.Input;
using Gp.Scripts.Core;
using Gp.Scripts.GUI;
using QFramework;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.InputSystem;
using GUIManager = Gp.Scripts.Core.GUIManager;
using Image = UnityEngine.UI.Image;

namespace Gp.GameLogic
{
//     public class IconActionItem : MonoBehaviour {
//         [LabelText("按钮图标")]
//         public Sprite buttonIcon;
//
//         [LabelText("按钮预制件")]
//         public ClickableTextButton buttonPrefab;
//         
//         [LabelText("不需要响应行为")]
//         public bool needActions = true;
//         
//         [HideIf("needActions")] [LabelText("响应行为组")]
//         public Actions resActions;
//
//         [LabelText("仅执行一次")]
//         public bool destroyAfterUsed = false;
//
//         private bool _afterExecute = false;
//
//         [HideInInspector]
//         public bool buttonExecute = true;
//         //暂用
//         [ValueDropdown("GroupName")][LabelText("放在哪个UI内")]
//         public UIGroup clickButtonParent = UIGroup.Main;
// #if UNITY_EDITOR
//         private IEnumerable GroupName = new ValueDropdownList<UIGroup>() {
//             {"战斗UI", UIGroup.Battle},
//             {"交互UI", UIGroup.Interact},
//             {"背包UI", UIGroup.Inventory},
//             {"主UI", UIGroup.Main},
//             {"交易UI", UIGroup.Trade},
//         };
//
//         // private void UpdateParent() {
//         //     _clickButtonParent = GridBattleGUISystem.Instance.GetUIGroup(clickButtonParent);
//         // }
// #endif
//
//         private void Start() {
//             if (!needActions) {
//                 return;
//             }
//             resActions = GetComponent<Actions>();
//         }
//
//         // private void OnMouseEnter() {
//         //     if (_afterExecute) {
//         //         return;
//         //     }
//         //     ShowButton();
//         // }
//
//         private void Update() {
//             if(Vector3.Distance(transform.position,HookPlayer.Instance.transform.position) >= 4 || _afterExecute) return;
//             ShowButton();
//         }
//
//         private void ShowButton() {
//             if (!buttonExecute) return;
//             if (destroyAfterUsed) {
//                 _afterExecute = true;
//             }
//             buttonExecute = false;
//             var uiParent = Global.Get<GUIManager>().GetUIGroup(clickButtonParent).transform;
//             var button = Instantiate(buttonPrefab,Vector3.zero, Quaternion.identity, uiParent);
//             button.item = this;
//             button.GetComponent<RectTransform>().rotation = new Quaternion(0f,0f,0f,0f);
//             button.transform.localPosition =
//                 InputManager.WorldToUIPosition(uiParent.GetComponent<RectTransform>(),transform.position);
//             button.GetComponent<Image>().sprite = buttonIcon;
//             button.destroyAfterUsed = destroyAfterUsed;
//         }
//
//         public void Execute() {
//             if (needActions) {
//                 return;
//             }
//
//             buttonExecute = true;
//             resActions.Execute();
//         }
//     }
}